Java Crossing
오지석
개발 기간 : 2021.10.27 ~ 10.31
개발 환경 : Mac
Index : Project OverView
주요기능 과일 채집 & 과일 판매
https://github.com/oooooosky/JavaCrossing.gitGitHub
매일 바뀌는 과일 판매가격
잠자기(나무 성장 과일 재생성)
Java
Crossing :
모여봐요 자바의숲 프로젝트는
모여봐요 동물의숲에서 얻은 아이디어입니다.
if문과 for, List 비교적 쉬운 코드들로
괜찮은 결과물을 얻을 있는지 확인해보고
싶었고,
Java 입문하려는 다른 사람들이
프로젝트를 보고
흥미를 가질 있으면 좋겠다는 생각 하에
프로젝트를 시작하게 되었습니다.모여봐요 자바의숲 시작 화면
JavaCrossing 중심이 되는 Main
Class코드입니다.
while문을 통해 코드를 반복하게
했습니다. 또한 try catch 이용해
입력과정에서 생길 있는 각종
오류들을 사연에 방지하게끔 해서
게임을 이용하면서 실수로 인한
다시시작해야하는 사고를 막을
있었습니다.
JavaCrossingMain
JavaCrossingInterface
JavaCrossingInterface입니다.
Interface 통해 추후에 JavaCrossingService 새로운 코드를 쓰던가, 유지보수가 필요할
쉽게 관리할 있게끔 Interface통해 JavaCrossingService접근할 있게끔 했습니다.
코드 실행 화면입니다
캐릭터 생성을 하면 사용자가
지정한 이름이 캐릭터를 담당하는
리스트에 저장 초반 정보가
저장이 됩니다. 만약 캐릭터 생성을
건너뛰고 다른 작업을 먼저 한다면
캐릭터를 먼저 만들어 달라는
문장을 출력하게끔 코드를
작성했습니다.
예시로 오하늘' 이라는 이름으로
캐릭터를 만들었습니다.
캐릭터 생성
캐릭터 생성
캐릭터 생성 메서드입니다.
캐릭터 생성과 동시에 갚을 생성, 과일나무 한그루 생성, 과일값 랜덤 생성이 모습을 있습니다.
이를 전부 리스트에 담아 차후에 관리하기 편하게 했고,
가장 중요도가 높은 characterList리턴으로 내보내 Main에서 저장하고 관리하게끔 했습니다.
캐릭터를 하나만 생성할 있게 if else 조건을 줬습니다.
정보 확인
정보 확인 실행 장면입니다.
캐릭터, 나무, 과일가격에 대한 정보를 있는 코드로 여러 정보를 한곳에서 있습니다.
정보 확인
정보 확인 메서드입니다.
정보를 확인하는 용으로만 쓰기 때문에 void선언했습니다.
리스트에 담은 내용들의 toString값을 출력하게끔 한눈에 모든 정보를 있게끔 했습니다.
또한 if else조건을 캐릭생성 이전에 정보확인을 통한 접근을 막아 오류발생 가능성을 줄였습니다.
과일 채집
과일 채집 화면입니다.
보시다시피 과일이 열려있는지 여부는 보기 쉽게 텍스트로 만든 그림으로 보이게끔 만들었습니다.
과일나무를 최대한 소지할 있는 갯수인 3개까지 있게 만들었습니다.
조그만 콘솔 사진은 과일이 없을 과일나무 채집 화면입니다.
과일 채집
과일 채집 메서드입니다.
같은 JavaCrossingServicetreePrint라는 메서드에 fruitList 보내,
나무가 몇그루 있는지와 과일이 있는지 없는지 판별해 그에 맞는 그림을 출력해줄려고 treePrint 호출했고,
없는 과일나무를 선택하거나 없는 과일을 채집하는것을 방지하기 위해 if else조건을
사전에 오류 발생 가능성이 생기는것을 줄였습니다.
과일 판매
과일을 판매하고 찍은 화면입니다.
현재 과일 시세와 과일을 팔고 얼마를 받았는지, 현재 잔고가 얼마인지 있게 했습니다.
과일 판매
과일판매 메서드입니다.
과일 시세와 과일 갯수를 먼저
출력해줘 정보를 보기 쉽게 했고,
if else 통해 조건을 알맞은
값만 받게끔 했습니다.
또한 과일 판매 얼마나 벌었고,
현재 잔고를 표시하게 일일히
정보확인을 하지 않아도 되게끔
했습니다.
갚기
갚기 화면입니다.
현재 잔고와 얼마를 갚았는지, 갚은 잔고와 남은 빚을 보기 편하게 만들었습니다.
갚기
갚기 메서드입니다.
현재 얼마를 갖고있는지, 보여줘
정보확인을 따로 필요 없이
만들었고, if else0원보다
많이 갖고있을때만 갚을 있게
했습니다. 또한 갚고나서 현재
잔고가 얼마인지, 남은 빚은
얼마인지 있게 했고 빚을
갚으면 엔딩출력 엔딩을
사람의 정보를 txt파일로 저장하게
했습니다.
잠자기
자기 화면입니다.
잠자는중 출력과 함께 날짜가 1증가하게 만들었고, 이에 맞춰 과일가격이
랜덤으로 바뀐것을 확인할 있습니다.
또한 나무에서 채집한 과일이 자란것을 있습니다.
* 중간에 한번 재실행을 해서 나무 나이가 처음꺼와 차이가 있습니다.
갚기
자기 메서드입니다.
잠을 자면 characterList, fruitList, priceList 날짜가 1 증가하며,
fruitList 과일이 열리는것은 if else 통해 3 이상된 나무부터 3일마다 과일이 열리게 했습니다.
또한 priceList과일 값을 새로 랜덤값으로 바뀌게 하는 코드를 과일판매을 판매할 판매가를 생각하게
재미를 더할 있었습니다.
나무 심기
나무 심기 화면입니다.
과일을 1개이상 소지, 과일나무가 3그루 미만 있을 때만 심을 있습니다.
과일나무는 심고나서 일정 시간 3일간격으로 과일이 자라게 했습니다.
과일나무를 심어서 과일나무가 2개가 모습입니다.
나무 심기
나무 심기 메서드입니다.
처음에 if else문으로 나무가
3그루 이하인지 비교를 3그루
초과로 심을 없게 하였고,
나무를 심으면 처음에 false값으로
인해 일정 시간만큼 과일이
없는걸로 했습니다.
또한 몇그루를 심었는지 있게
했고, 나무를 심지 못할 무슨
이유로 심을 없는지 확인할
있게끔 코드를 작성했습니다.
엔딩
엔딩화면입니다.
빚을 갚으면 게임을 얼마나 플레이 했는지부터, 플레이어가 행동들이 나오게 했습니다.
그리고 역대 명예의 마을 주민으로 파일에 기록을 하게 했습니다.
엔딩
엔딩용 메서드입니다.
빚을 갚아 엔딩을 보는 사람을 위해 얼마나 마을에 머물렀는지, 과일을 몇개를 채집했는지 등을 있게끔
코드를 작성했습니다.
명예의 전당
엔딩을 사람들을 모아놓은 곳입니다.
텍스트 파일로 어떤 사람이 마을에 와서 엔딩을 보고 갔는지 있게 했습니다.
먼저 코드를 테스트한 혜린님의 정보가 있는것을 볼수있습니다.
명예의 전당
엔딩을 사람의 정보를 txt 저장하게 해주는 메서드입니다.
메서드는 JavaCrossingService와는 다른 메서드에서 작성이 되었습니다.
우선 지정한 경로에 txt파일을 생성하는 객체를 만들었고, 파일을 불러와 기존의 정보에 추가로 입력하는 코드를 썼습니다.
이는 빚갚기를 모두 완료한 사람에게만 적용되게끔 빚갚기 메서드안에 if else안에서 호출해서 사용하게끔 했습니다.
Java Crossing
-End-